package com.example.pt.service;

import com.example.pt.entity.UserSeedStats;

import java.util.List;

/**
 * 用户保种统计服务接口
 */
public interface UserSeedStatsService {
    
    /**
     * 更新用户保种统计
     * @param userId 用户ID
     * @param infoHash 种子哈希
     * @return 是否更新成功
     */
    boolean updateUserSeedStats(Integer userId, String infoHash);
    
    /**
     * 计算种子的稀缺性系数
     * @param infoHash 种子哈希
     * @return 稀缺性系数
     */
    double calculateScarcityFactor(String infoHash);
    
    /**
     * 获取用户的保种记录列表
     * @param userId 用户ID
     * @return 保种记录列表
     */
    List<UserSeedStats> getUserSeedStatsList(Integer userId);
    
    /**
     * 获取用户的总保种积分
     * @param userId 用户ID
     * @return 总保种积分
     */
    int getTotalSeedPoints(Integer userId);
    
    /**
     * 计算单个保种记录的积分
     * @param seedStats 保种记录
     * @return 积分
     */
    int calculateSeedPoints(UserSeedStats seedStats);
    
    /**
     * 更新所有用户的保种统计数据
     * 基于现有的user_transfer_stats、torrent_seed_stats和torrent_info_hash表数据
     */
    void updateAllUserSeedStats();
} 